package com.androwit.engine.mapping;

import java.util.Collection;
import java.util.Map;

import com.androwit.engine.ItemInfo;

/**
 * Declares a multiple column value
 * 
 * @param <J>
 *          the java value's type
 * @param <K>
 *          the column key type
 * @param <V>
 *          the transformed value type as a list of <T> (ready for writing)
 * @param <T>
 *          the type of each element of the list
 * @param <I>
 *          the line container type
 * @author Zied Hamdi Founder of http://1vu.fr,  hamdi
 */
public interface MultipleColumnField<J, K, V extends Collection<T>, T, I>
		extends MappingField<J, K, V> {

	public ItemInfo<?, I> writeValue(ItemInfo<?, I> item, K key, V value,
			String columnFamily);

	public V parseValues(Map<K, V> values);
}
